package com.hzh.blog.common.manager;

import java.util.List;
import java.util.Map;

import com.hzh.blog.common.pager.Page;
import com.hzh.blog.common.pager.PropertyFilter;
import com.hzh.blog.vo.TreeData;

/**
 * 
 * @description 定义一些公共的服务层方法
 * @author chenxu
 * @createTime 2011-7-25
 */
public interface CommonManager {

	/**
	 * 获得整颗树
	 * 
	 * @return
	 */
	public List<TreeData> getWholeTree();

	/**
	 * 根据指定树的级别获得树列表
	 * 
	 * @param level
	 * @param param
	 * @return
	 */
	public List<TreeData> getTreeByLevel(int level, String param);

	/**
	 * 获得树的一个分支数据
	 * 
	 * @param param
	 *            这个分支的参数
	 * @return
	 */
	public List<TreeData> getBranch(String param);

	/**
	 * 获得分页数据，使用默认的count以及query语句
	 * 
	 * @param propertyFilters
	 * @param page
	 * @param otherMap
	 *            除了动态参数以外的参数
	 * @return
	 */
	public Page findPagerObjectListByFilter(
			List<PropertyFilter> propertyFilters, Page page,
			Map<String, String> otherMap);

	/**
	 * 获得分页数据，不使用默认的count以及query语句（追加后缀）
	 * 
	 * @param propertyFilters
	 * @param page
	 * @param suffix
	 *            statement id 后缀
	 * @param otherMap
	 *            除了动态参数以外的参数
	 * @return
	 */
	public Page findPagerObjectListByFilter(
			List<PropertyFilter> propertyFilters, Page page, String suffix,
			Map<String, String> otherMap);
	/**
	 * 使用动态条件，获得分页数据
	 * @param propertyFilters
	 * @param page
	 * @return
	 */
	public Page findPagerObjectListByFilter(
			List<PropertyFilter> propertyFilters, Page page);

}
